Comparison of layout engines (Scalable Vector Graphics)

Scalable Vector Graphics

The following tables compare SVG compatibility and support for a number of layout engines. Please see the individual products' articles for further information. This article is not all-inclusive or necessarily up-to-date. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.

Contents

Explanation of the tables

Engine nomenclature

Rather than the names of web browsers, the names of the underlying engines are used. The browsers that use the various engines are listed below.

Layout engine Release version Preview version Used by
Amaya 11.3.1 11.3-pre Amaya
Gecko 6.0.2 8.0a2 All Mozilla software, including Firefox; SeaMonkey and Galeon; Camino; K-Meleon; Flock (up to 2.x); Epiphany-gecko; Debian IceWeasel; GNU IceCat (formerly GNU IceWeasel); Icedove, Iceape and Iceowl; Fennec
KHTML N/A Konqueror
Presto 2.10.229 2.9.168 Opera; Opera Mobile, Nintendo DS & DSi Browser‎; Internet Channel
Prince 7.1 N/A Prince XML
Tasman (IE 5.2.3 for Mac) none (aborted in 2003) Internet Explorer 5+ for Mac OS X
Trident 5.0 (IE 9) 6.0 (IE 10) Internet Explorer and other Internet Explorer shells like Maxthon (Microsoft Windows operating systems only), Windows Phone 7
WebKit 534.20 r83424 Safari (both desktop and mobile), Google Chrome, Maxthon 3, Shiira, iCab 4, OmniWeb 5.5+, Epiphany, Adobe AIR, Midori, Adobe Dreamweaver CS4 and CS5, Android browser, Palm webOS browser, Symbian S60 browser, OWB, Steam, Rekonq, Arora, Flock (version 3+), RockMelt

Adobe SVG Viewer , Batik, eSVG and Renesis are SVG-Plugins.

Values

Values indicate the level of support in the most recent version of the layout engine, or (if a version number is given) in the specified version. Version numbers without any other value indicate the version at which the layout engine first fully supported the feature.

Value Meaning
Yes Indicates that the layout engine fully supports this property/element when valid values are used.
No Indicates that the property/element is completely ignored.
Partial Indicates that the property/element is understood, but that not all values are supported. Supported values are implemented correctly.
Incorrect Indicates that the property/element is understood, but that it is not implemented correctly in all cases.
Experimental Indicates that the property/element is understood, but supported under an alternate name. May be incomplete or buggy.
Dropped Indicates that the property/element is no longer supported.
Nightly build Indicates that the property/element is supported to some extent in an experimental/nightly build. Future support is expected.
Depends Indicates that the property/element is supported only on certain platforms, or if certain settings are configured.

SVG version support

Trident Gecko WebKit KHTML Presto Prince XML Amaya Adobe SVG Viewer Batik Renesis
SVG 1.1 Tiny (SVGT) 5.0[t 1] Partial[g 1] Partial Partial[note 1] 1.0 Partial Partial Partial Mostly Partial
Basic (SVGB) Mostly
Full
1.2 Tiny No No No No 2.1 ? ? No Partial Partial
Full No No No No No
sXBL Yes
XBL 2.0 No

Embedding

This table shows support status of different ways of embedding SVG into HTML, for different layout engines.

Trident Gecko WebKit KSVG Presto Amaya
<img> 5.0[t 1] 2.0[g 2] Partial[note 2] No 2.1 5.1
<embed> 1.8 Partial[note 3] Partial[note 4] Partial[note 5] 5.2
<object> Yes 5.1
CSS background-image 2.0[g 3] No No 2.1 ?
CSS list-style-image Partial[note 6] ?
as Favicon No 2.0[g 4] No 2.1.1 ?
in data URIs Yes ? ? ? ?

SVG 1.1 support

Comparison of various Scalable Vector Graphics element support.

Profile Element Trident Gecko WebKit KSVG Presto Prince XML Amaya Adobe SVG Viewer Batik Renesis
Structure Module
Tiny svg 5.0[t 2] 1.8 522 Yes 1.0 Yes Yes 1.0 Yes Yes
g 2.0 1.0
defs 6.0 ?
desc No No ?
title ? 3.0
metadata ? ? 2.0
use Partial[w 3] No 6.0 Yes 1.0 0.6
Basic symbol 522 ?
Conditional Processing Module
Tiny switch Yes 1.8 522 ? 2.0 No ? 2.0 Yes No
Image Module
Tiny image 5.0[t 2] 2.0[g 5] 522 No 2.0 5.1 4.0 1.0 Yes 0.5
Style Module
Tiny style 5.0[t 1] 1.8 522 ? 2.0 Yes Yes 1.0 Yes 0.6
Shape Module
Tiny circle 5.0[t 2] 1.8 522 Yes 2.0 Yes 4.0 1.0 Yes 1.0
ellipse
line
path
polygon
polyline
rect 0.6
Text Module
Tiny text 5.0[t 1] 1.8 522 Yes 2.0 5.1 4.0 1.0 Yes 0.7
Basic tspan Yes
tref No[g 6] No 6.3 0.6
textPath 1.8.1 4.0 No
Full altGlyph Partial[g 7] Partial ? 2.2 2.0
altGlyphDef No No ?
altGlyphItem ? ? No
glyphRef ? 2.2 2.0
Profile Element Trident Gecko WebKit KSVG Presto Prince XML Amaya Adobe SVG Viewer Batik Renesis
Marker Module
Full marker 5.0[t 1] 1.8 522 ? 2.0 6.0 ? 3.0 Yes 1.0
Color Profile Module
Full color-profile No No[g 8] No[w 4] No No No ? 3.0 Yes No
Gradient Module
Basic linearGradient 5.0[t 1] 1.8 522 Yes 1.0 6.0 ? 1.0 Yes 0.5
radialGradient 2.0 ?
stop 1.0 ? ?
Pattern Module
Basic pattern 5.0[t 1] 1.9 522 Yes 2.0 ? ? 2.0 Yes 0.5
Clip Module
Basic clipPath 5.0[t 1] 1.8 Mostly[w 5] ? 2.0 ? ? 1.0 Yes 0.6
Mask Module
Basic mask 5.0[t 1] 1.9 522 ? 2.0 ? ? 1.0 Yes No
Filter Module
Basic feBlend 5.0[t 1] 1.9 Nightly build[w 6] ? 2.0 No ? 1.0 Yes No
feColorMatrix ? ?
feComponentTransfer ? ?
feComposite ? ?
feFlood ? ?
feGaussianBlur ? ?
feImage ? ?
feMerge ? ?
feOffset ? ?
feTile ? ?
Full filter Nightly build[w 6] ? ?
feConvolveMatrix Nightly build[w 7] ? ?
feDiffuseLighting Nightly build[w 8] ? ?
feDisplacementMap Nightly build[w 6] ? ?
feMergeNode ? ?
feMorphology ? ?
feSpecularLighting Nightly build[w 9] ? ?
feTurbulence Nightly build[w 10] ? ?
feDistantLight No ? ?
fePointLight ? ?
feSpotLight ? ?
feFuncR Nightly build[w 6] ? ?
feFuncG ? ?
feFuncB ? ?
feFuncA ? ?
Profile Element Trident Gecko WebKit KSVG Presto Prince XML Amaya Adobe SVG Viewer Batik Renesis
Cursor Module
Full cursor 5.0[t 1] No[g 9] Partial ? No ? ? No Yes 0.6
Hyperlinking Module
Tiny a Yes 1.8 522 Yes 1.0 5.1 8.2 1.0 Yes 0.6
View Module
Basic view No No[g 10] Partial ? 2.0 ? ? 3.0 Yes No
Scripting Module
Tiny script Yes 1.8 522 ? 2.0 ? ? 1.0 Yes 0.5
Animation Module
Tiny animate No 2.0[g 11] No Yes 2.0 No Yes 1.0 Yes No
set Partial
animateMotion 2.0[g 12] No
animateTransform 2.0[g 11]
animateColor No[g 13] Yes
mpath 2.0[g 12] 522 ? ? 2.0
Font Module
Tiny font No No[g 14] Yes ? 2.0 ? ? 2.0 Yes 1.0
font-face ? 1.0 ? ? Dropped[note 7]
glyph ? ? ? 1.0
missing-glyph ? ? ?
Full hkern Nightly build[w 11] ? 2.0 ? ? No
vkern Nightly build[w 12] ? ? ?
font-face-src Yes ? No ? ? No
font-face-uri ? 2.0 ? ?
font-face-format ? No ? ? No
font-face-name ? ? ? Yes
Extensibility Module
Full foreignObject No 1.9 522 ? 2.0 No 7.2 No No No
Profile Element Trident Gecko WebKit KSVG Presto Prince XML Amaya Adobe SVG Viewer Batik Renesis

Notes

  1. ^ KHTML does not have any native image support. This is by design: in Konqueror, multimedia files are handled by KParts. The KDE project also developed an SVG plugin for Konqueror, known as KSVG.[k 1]
  2. ^ <img> — WebKit does not render the image if its size is given in relative units.[w 1]
  3. ^ <embed>, <object> — WebKit does not scale the image properly if its size is given in relative units.[w 2]
  4. ^ <embed>, <object> — KSVG does not scale the image properly if its size is given in relative units.
  5. ^ <embed> — Presto does not scale the image properly if its size is given in relative units.
  6. ^ list-style-image — WebKit does render the image if its size is given in relative units.[w 1]
  7. ^ Renesis 0.7 supports that feature, but because of the rewrite of the plugin Renesis 1.0 doesn't support this any longer.[1]

References

Trident references

Gecko references

  1. ^ Bug 512501 - (svg11tests) We should pass all the W3C SVG 1.1 Full tests, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=512501 
  2. ^ Bug 276431 - external SVG not loaded from img tag, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=276431 
  3. ^ Bug 231179 - SVG images in CSS, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=231179 
  4. ^ Bug 366324 - SVG site icons (favicons, shortcut icons) support, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=366324 
  5. ^ Bug 272288 - Allow SVG source for <svg:image>, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=272288 
  6. ^ Bug 273171 - Text 'tref' not supported, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=273171 
  7. ^ Bug 456286 - should altGlyph elements fall back to behaving like tspan?, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=456286 
  8. ^ Bug 427713 - embedded color profiles in svg are ignored, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=427713 
  9. ^ Bug 177193 - Implement the 'cursor' element and the 'cursor' attribute, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=177193 
  10. ^ Bug 512525 - Implement the <view> element, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=512525 
  11. ^ a b Bug 482402 - (enablesmil) Enable "svg.smil.enabled" pref by default, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=482402 
  12. ^ a b Bug 436418 - SVG SMIL: Implement "animateMotion", Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=436418 
  13. ^ Bug 436296 - SVG SMIL: implement "animateColor", Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=436296 
  14. ^ Bug 119490 - Implement SVG fonts, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=119490 

WebKit references

KHTML references

  1. ^ See http://svg.kde.org/. KSVG seems to be inactive as of 2007.

Other references

External links